// 导入axios
import axios from "axios";
// 使用自定义配置新建一个axios 实例，对axios 做一些基础配置
// instance 还是axios,只不过该axios 具备了baseURL timeout headers等属性值

// 输出环境变量
// process.env 是node下的全局变量 类似js window
// console.log(process.env.NODE_ENV);
// console.log(process.env.VUE_APP_BASE_URL);

const instance = axios.create({
    // 配置公共的请求地址,
    baseURL: '/api',
    // 配置请求时长 当请求超过设置时间后,自动中断请求
    timeout: 5000,
    // 配置请求头  只针对post 请求有效
    headers: { 'Content-Type': 'appLication/json' }
});

// 添加一个请求拦截器
instance.interceptors.request.use(function (config) {
    // 请求发送之前的逻辑处理
    // 一般用于修改请求头,给请求头设置参数,该参数一般用 token,然后后端就可以从header 中,获取该参数
    const token = localStorage.getItem('token')
    if(token){
      // 发送请求前,设置headers 属性,添加参数
      config.headers['X-Nideshop-Token'] = token
    }else{
      // 否则就不加
    }
    // console.log(config);
    return config;
  }, function (error) {
    return Promise.reject(error);
  });

// 添加一个响应拦截器
instance.interceptors.response.use(function (response) {
    // 可以做一些响应时间处理,比如状态码的判断, 或者是更新一些本地存储内容
    return response;
  }, function (error) {
    return Promise.reject(error);
  });

//   导出该axios  instance是封装后的axios
export default instance